package com.hiraeth.modules.monitor.model.remote;


import com.fasterxml.jackson.annotation.JsonInclude;
import com.hiraeth.modules.monitor.model.RelabelConfig;
import com.hiraeth.modules.monitor.model.common.BasicAuth;
import com.hiraeth.modules.monitor.model.common.TlsConfig;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

@Data
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class RemoteWrite implements Serializable {
	
	private static final long serialVersionUID = -9055500928063703778L;

	/**
	 * 要发送样本的端点的URL.
	 */
	private String url;
	
	/**
	 * 对远程写端点的请求超时。
	 */
	private String remote_timeout;
	
	/**
	 * 远程写入重新标记配置列表。
	 */
	private List<RelabelConfig> write_relabel_configs;
	
	/**
	 * 使用配置的用户名和密码在每个远程写请求上设置`Authorization`标头.password和password_file是互斥的。
	 */
	private BasicAuth basic_auth;
	
	/**
	 * 使用配置的承载令牌在每个请求上设置“Authorization”标头。 它与`bearer_token_file`互斥。
	 */
	private String bearer_token;

	/**
	 * 使用配置的承载令牌在每个请求上设置“Authorization”标头。 它与`bearer_token`互斥。
	 */
	private String bearer_token_file;

	/**
	 * 配置scrape请求的TLS设置。
	 */
	private TlsConfig tls_config;
	
	/**
	 * 可选的代理URL。
	 */
	private String proxy_url;
	
	/**
	 * 配置用于写入远程存储的队列。
	 */
	private QueueConfig queue_config;

}
